$(function(){
    //1.全选 全不选功能模块
    //就是把全选按钮(checkall)的状态赋值给三个小的按钮（j-checkbox）就可以了
    //事件可以使用change
    $(".checkall").change(function(){
        console.log($(this).prop("checked"));
        $(".j-checkbox,.checkall").prop("checked",$(this).prop("checked"));
        if($(this).prop("checked")){
            //让所有的商品添加类名
            $(".cart-item").addClass("check-cart-item");
        }else{
            //移除类名.check-cart-item
            $(".cart-item").removeClass("check-cart-item");
        }
    })
    //当我们每次点击小的复选框按钮就来判断：
    //如果小复选框被选中的个数等于三就应该把全选按钮选上，否则全选按钮就不选
    //:checked选择器  ：checked查找被选中的表单元素
    $(".j-checkbox").change(function(){
        // if(被选中的小的复选框的个数 ===3){
        //     就要选中全选按钮
        // }else{
        //     不要选中全选按钮
        // }
        // $(".j-checkbox").length这个是所有的小复选框的个数
        if($(".j-checkbox:checked").length === $(".j-checkbox").length){
            $(".checkall").prop("checked",true);
        }else{
            $(".checkall").prop("checked",false);
        }
        if($(this).prop("checked")){
            //让的商品添加类名
            $(this).parents(".cart-item").addClass("check-cart-item");
        }else{
            //移除类名.check-cart-item
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }
    });
    //购物车增减商品数量分析
    /*
        核心思路：首先声明一个变量，当我们点击+号 （increment），就让这个值++，然后赋值给文本框
        注意：只能增加本商品的数量，就是当前+号的兄弟文本框（itxt）的值
         修改表单的值 用val（）方法
         这个变量的值是文本框的值，在这个值得基础上++，需要获取表单的值*/
    $(".increment").click(function(){
        var n = $(this).siblings(".itxt").val();
        n++;
        $(this).siblings(".itxt").val(n);
        //计算小计要把￥符号去掉再相乘  截取字符串 substr（1）
        var p = $(this).parent().parent().siblings(".p-price").html();
        p = p.substr(1);//把￥符号
        var price = (p*n).toFixed(2);//tofixed（2）保留两位小数
        var p = $(this).parent().parent().siblings(".p-sum").html("￥"+price);
        getSun();
    })
    $(".decrement").click(function(){
        var n = $(this).siblings(".itxt").val();
        if(n == 1){
            return false;
        }else{
             n--;
        $(this).siblings(".itxt").val(n);
        }
        var p = $(this).parent().parent().siblings(".p-price").html();
        p = p.substr(1);
        var price = (p*n).toFixed(2);//tofixed（2）保留两位小数
        var p = $(this).parent().parent().siblings(".p-sum").html("￥"+price);
        getSun();
    })
    //如果用户直接修改文本框里面的数量 需要用最新的表单内的值 乘以单价即可 但是还需要计算商品小计
    $(".itxt").change(function(){
        //先得到文本框里面的值 乘以 当前商品单价
       var n =  $(".itxt").val();
       //当前商品的单价
       var p = $(this).parent().parent().siblings(".p-price").html();
        p = p.substr(1);
        var price = (p*n).toFixed(2);//tofixed（2）保留两位小数
        var p = $(this).parent().parent().siblings(".p-sum").html("￥"+price);
        getSun();
    })
    //总计模块 与总额模块 
    /*
    核心思路：把所有文本框里面的值相加就是总计  总额同理
    文本框里面的值不相同，如果想要相加需要用到each遍历。声明一个变量相加即可 */
    getSun();
    function getSun(){
        var count = 0;//计算总件数
        var money = 0;//计算总金额
        $(".itxt").each(function(i,ele){
            count +=  parseInt($(ele).val()) ;
        });
        $(".amount-sum em").text(count);
        $(".p-sum").each(function(i,ele){
            money +=parseFloat($(ele).text().substr(1)) ;
        });
        $(".price-sum em").text("￥"+money.toFixed(2));
    }
    //删除商品
    $(".p-action").click(function(){
        $(this).parents(".cart-item").remove();
        getSun();
    })
    //删除选中的商品
    $(".remove-batch").click(function(){
        $(".j-checkbox:checked").parents(".cart-item").remove();
        getSun();
        // $(".j-checkbox:checked") 找到复选框被勾上的复选框
    })
    //清空购物车
    $(".clear-all").click(function(){
        $(".cart-item-list").remove();
        getSun();
    })
    //购物车选中商品添加删除背景
}) 